ec8b2cf7b763a8bdd04433fd9db3674f78369be3,src/main/java/io/mewbase/server/impl/ConnectionImpl.java,ConnectionImpl,handleListChannels,#BsonObject#,413

Before Change


    @Override
    public void handleListChannels(BsonObject frame) {
        checkContext();
        if (!isAuthorized(Protocol.LIST_CHANNELS_FRAME)) {
            return;
        }
        Integer requestID = frame.getInteger(Protocol.REQUEST_REQUEST_ID);
        if (requestID == null) {
            missingField(Protocol.REQUEST_REQUEST_ID, Protocol.LIST_CHANNELS_FRAME);
            return;
        }
        BsonObject resp = new BsonObject();
        resp.put(Protocol.RESPONSE_REQUEST_ID, requestID);
        resp.put(Protocol.RESPONSE_OK, true);

After Change


    public void handleListChannels(BsonObject frame) {
        checkContext();

        CompletableFuture<Boolean> authorisedCF = user.isAuthorised(Protocol.LIST_CHANNELS_FRAME);

        Consumer<BsonObject> frameConsumer = (protocolFrame) -> {
            Integer requestID = protocolFrame.getInteger(Protocol.REQUEST_REQUEST_ID);
            if (requestID == null) {
                missingField(Protocol.REQUEST_REQUEST_ID, Protocol.LIST_CHANNELS_FRAME);
                return;
            }
            BsonObject resp = new BsonObject();
            resp.put(Protocol.RESPONSE_REQUEST_ID, requestID);
            resp.put(Protocol.RESPONSE_OK, true);
            BsonArray arr = new BsonArray(server.listChannels());
            resp.put(Protocol.LISTCHANNELS_CHANNELS, arr);
            writeResponse(Protocol.RESPONSE_FRAME, resp);
        };

        authorisedCF.handle((res, ex) -> {

            handleFrame(frame, frameConsumer, res, ex);
            return null;
        });
    }

    @Override